package com.solution.admin.settings.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.settings.dao.SortDao;
import com.solution.admin.settings.entity.SortEntity;
import com.solution.common.dao.impl.BaseDaoImpl;

@Repository
public class SortDaoImpl extends BaseDaoImpl<SortEntity> implements SortDao {

	/**
	 * 获取数据列表
	 * @param sortEntity
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:35:59 
	 */
	@Override
	public List<SortEntity> getList(SortEntity sortEntity) {
		return getSessionTemplate().selectList(getStatement("getList"), sortEntity);
	}

	/**
	 * 获取排序第一个的数据
	 * @param sortEntity
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:36:02 
	 */
	@Override
	public SortEntity getFirstSortNo(SortEntity sortEntity) {
		return getSessionTemplate().selectOne(getStatement("getFirstSortNo"), sortEntity);
	}
	
	/**
	 * 获取当前序号数据
	 * @param mapParam
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:24:48
	 */
	@Override
	public SortEntity getCurrentById(Map<String, Object> mapParam) {
		return getSessionTemplate().selectOne(getStatement("getCurrentById"), mapParam);
	}

	/**
	 * 获取当前序号的上一个数据
	 * @param sortEntity
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:36:07 
	 */
	@Override
	public SortEntity getPreviousBySortNo(SortEntity sortEntity) {
		return getSessionTemplate().selectOne(getStatement("getPreviousBySortNo"), sortEntity);
	}

	/**
	 * 获取当前序号的下一个数据
	 * @param sortEntity
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:36:10 
	 */
	@Override
	public SortEntity getNextBySortNo(SortEntity sortEntity) {
		return getSessionTemplate().selectOne(getStatement("getNextBySortNo"), sortEntity);
	}
	
	/**
	 * 获得表中最大的排序号
	 * @param tableName
	 * @return
	 * @author: solin
	 * @date: 2017年9月19日 上午1:33:40
	 */
	@Override
	public int getMaxSortNo(String tableName) {
		SortEntity sortEntity = new SortEntity();
		sortEntity.setTableName(tableName);
		return getSessionTemplate().selectOne(getStatement("getMaxSortNo"), sortEntity);
	}

	/**
	 * 更新序号
	 * @param sortEntity
	 * @return
	 * @author: solin
	 * @date: 2017年9月18日 下午10:36:14 
	 */
	@Override
	public int updateSortNo(SortEntity sortEntity) {
		return super.update(sortEntity);
	}

}
